package com.easylinkin.linkappapi.webcammanage.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author TongJie
 * @since 2020-04-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("linkapp_device_attribute_status")
public class DeviceAttributeStatus extends Model<DeviceAttributeStatus> {

    private static final long serialVersionUID = 1L;

    @TableId("id")
    private String id;

    /**
     * 设备编码
     */
    @TableField("device_code")
    private String deviceCode;

    /**
     * 设备名称
     */
    @TableField("device_name")
    private String deviceName;

    /**
     * 属性名称
     */
    @TableField("prop_name")
    private String propName;

    /**
     * 属性编码
     */
    @TableField("prop_code")
    private String propCode;

    /**
     * 属性单位
     */
    @TableField("prop_unit")
    private String propUnit;

    /**
     * 单位
     */
    @TableField(exist = false)
    private String unit;

    @TableField(exist = false)
    private Integer onlineState;
    
    /**
     * 版本号
     */
    @TableField("version")
    private String version;
    
    @TableField("parent_id")
    private String parentId;
    
    /**
     * 数组序号
     */
    @TableField("array_index")
    private Integer arrayIndex;

    /**
     * 父属性的编码
     */
    @TableField("parent_prop_code")
    private String parentPropCode;

    /**
     * 属性值
     */
    @TableField("prop_value")
    private String propValue;

    @TableField("create_time")
    private Date createTime;

    @TableField("creator")
    private String creator;

    @TableField("modifier")
    private String modifier;

    @TableField("modify_time")
    private Date modifyTime;

    /**
     * 区域路径
     */
    @TableField(exist = false)
    private String areaPath;

    /**
     * 时间查询起始
     */
    @TableField(exist = false)
    private String queryTimeStart;
    /**
     * 时间查询结束
     */
    @TableField(exist = false)
    private String queryTimeEnd;

    /**
     * 设备型号id
     */
    @TableField(exist = false)
    private String deviceUnitId;
    

    @TableField(exist = false)
    private String deviceUnitCode;

    /**
     * 设备属性排序
     */
    @TableField(exist = false)
    private Integer sortNo;

    /**
     * 设备属性是否展示
     */
    @TableField(exist = false)
    private Boolean isShow;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @TableField(exist = false)
    private String specs;

    @TableField(exist = false)
    private String visualizationConfig;

    @TableField(exist = false)
    private String tenantId;

    /**
     * 时间查询条件
     */
    @TableField(exist = false)
    private List<Date> queryTimeList;

    @TableField(exist = false)
    private String icoPath;

    /**
     * 子属性列表
     */
    @TableField(exist = false)
    private List<DeviceAttributeStatus> childAttributeList;

    @TableField(exist = false)
    private List<String> necessaryFieldList;

    @TableField(exist = false)
    private List<String> checkedAttrName;

    @TableField(exist = false)
    private String projectName;

}
